The Cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a Cloud layer, thus making disparate devices appear to an end-user as a single pool of seamless resources. These resources may include such things as physical or logical compute engines, servers and devices, device memory, storage devices, networks, business applications and other software, and the like.
In a typical Cloud environment, customers will have corresponding virtual “customer” instances through which desired functionality is achieved. Occasionally, these instances fail (e.g., due to corruption, attack, etc.). Existing solutions require multiple system instances to monitor each other. If the multiple instances reside on the same physical node, they would all become unavailable in case the physical node malfunctions. Further, in many Cloud systems, the virtualized view does not expose the physical assignment. Moreover, existing solutions inherently assume a certain level of trust between the components, which cannot be assumed in a public Cloud environment. Among the potential exploitations are the unauthorized uses of the available service to: mount denial-of-service attacks; access confidential data of another Cloud user; and/or incur unauthorized cost.